====== Création d'une page d'administration d'un plugin ======
===== Structure minimale =====
==== _admin.php ====
La page doit être déclarée dans le fichier ''_admin.php'' du plugin :
if (!defined('DC_CONTEXT_ADMIN')) {return;}
global $core;
# ajouter le plugin dans la liste des plugins du menu de l'administration
$_menu['Plugins']->addItem(
# nom du lien (en anglais)
__('Example'),
# URL de base de la page d'administration
'plugin.php?p=example',
# URL de l'image utilisée comme icône
'index.php?pf=example/icon.png',
# expression régulière de l'URL de la page d'administration
preg_match('/plugin.php\?p=example(&.*)?$/',
$_SERVER['REQUEST_URI']),
# persmissions nécessaires pour afficher le lien
$core->auth->check('usage,contentadmin',$core->blog->id));
Dans le code ci-dessus, remplacez ''example'' par le nom du répertoire du plugin. L'icône doit mesurer environ 16×16 pixels, vous pouvez en trouver une dans le pack [[http://www.famfamfam.com/lab/icons/silk/|Silk Icons]].
Un lien vers la page d'administration apparaît dans le sous-menu Extensions de la page d'administration :
{{:2.0:resources:plugins:admin:menu_item.png|}}
Outre le fait que le plugin dispose de permissions générales dans le fichier [[public-page#le-fichier-_define.php|_define.php]], il peut être parfois nécessaire de restreindre l'accès à la page de configuration à quelques utilisateurs. Pour cela, il suffit d'ajouter en début de fichier après la ligne if (!defined('DC_CONTEXT_ADMIN')) {return;}
if (!$core->auth->isSuperAdmin()) {return;}
Il est bien sur possible d'adapter ce code à la prise en compte de permission particulière avec la fonction ''check()'' de la classe ''dcAuth''
==== index.php ====
Voici la structure de base du fichier ''index.php'', notez que la balise '''' n'a aucun attribut, c'est Dotclear qui les ajoute lors de l'affichage.
blog->name).' › '.
__('Example'); ?>
Voici le résultat :
{{:2.0:resources:plugins:admin:page.png?300|}}
===== Télécharger un plugin exemple =====
Le plugin suivant montre quelques exemples d'utilisation de codes décrits dans cette documentation :
[[http://lab.dotclear.org/raw-attachment/wiki/plugin/adminExample/plugin-adminExample.zip|plugin-adminExample.zip]]
===== Personnaliser cette page =====
{{{pagetoc
.:admin:tabs
.:admin:message
.:admin:columns
.:admin:forms
.:admin:example
.:help
}}}